XDCMS 3.0 数据库备份任意文件夹删除
一、漏洞简介
二、漏洞影响
XDCMS 3.0
三、复现过程
漏洞点:system/modules/xdcms/data.php
public function delete(){
$file=trim($_GET["file"]);
$dir=DATA_PATH.'backup/'.$file;
if(is_dir($dir)){
//删除文件夹中的文件
if (false != ($handle = opendir ( $dir ))) {
while ( false !== ($file = readdir ( $handle )) ) {
if ($file != "." && $file != ".."&&strpos($file,".")) {
@unlink($dir."/".$file);
}
}
closedir ( $handle );
}
@rmdir($dir);//删除目录
}
showmsg(C('success'),'-1');
}
删除数据库备份时候仅判断是否为文件夹,是则删除其中所有的文件;同时未对目录进行过滤,导致可以删除任意文件夹中的文件